<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='./vue.js'></script>
</head>

<body>
    <div id='app'>
        <button @click="count++"> {{count}} </button>
    </div>
</body>
<script>
    const app = {
        data() {
            return {
                count: 100
            }
        },
        methods: {},
        // 在组合式 API 中 beforeCreate 和 created 会被 setup 函数给替代掉
        beforeCreate() {
            console.log('创建之前的生命周期，会在实例创建之前被调用');
        },
        created() {
            console.log('实例创建完成的回调函数');
            // 之前在 vue2 开发的时候，很多开发者会在这里进行数据请求
        },
        beforeMount() {
            console.log('实例挂载之前被执行');
        },
        mounted() {
            console.log('实例挂载完成后执行的函数');
            // 页面中的数据请求会在这里发生
        },
        beforeUpdate() {
            console.log('更新之前执行');
        },
        updated() {
            console.log('更新完成执行');
        },
        beforeUnmount() {
            console.log('实例卸载之前');
        },
        unmounted() {
            console.log('实例卸载完成');

            // 清除一些影响性能的函数或者变量，如监听的事件或者定时器或者即时通讯等
        },
    }
    const myapp = Vue.createApp(app)

    myapp.mount('#app')

    setTimeout(() => {
        // 解绑一个组件
        myapp.unmount('#app')
    }, 5000)


</script>

</html>